The KeY system 1.0 (Deduction Component)
نویسندگان
چکیده
The KeY system is a development of the ongoing KeY project, whose aim is to integrate formal specification and deductive verification into the industrial software engineering processes. The deductive component of the KeY system is a novel interactive/automated prover for first-order Dynamic Logic for Java. The KeY prover features a userfriendly graphical interface, a backtracking-free free-variable sequent calculus with equality, a simple and powerful theory formalization language called “taclets,” solution procedures for linear and non-linear integer arithmetic, external theorem prover integration, and facilities for proof reuse, among other aspects. The system is publicly available. Introduction. The KeY system is the main software product of the KeY project, a joint effort between the University of Karlsruhe, Chalmers University of Technology in Göteborg, and the University of Koblenz. The KeY system is a formal software development tool that aims to integrate design, implementation, formal specification, and formal verification of object-oriented software as seamlessly as possible. At the core of the system is a deductive verification component, which also can be used as a stand-alone prover. It employs a freevariable sequent calculus for first-order Dynamic Logic for JAVA. The calculus is proof-confluent, i.e., no backtracking is necessary during proof search. While we constantly strive to increase the degree of automation, user interaction remains indispensable in deductive program verification. The main design goal of the KeY prover is thus a seamless integration of automated and interactive proving. Efficiency must be measured in terms of user plus prover, not just prover alone. Therefore, a good user interface for proof state presentation and rule application, a high level of automation, extensibility of the rule base, and a calculus without backtracking are all important features. In this paper we concentrate on the description of the KeY prover and the reasoning techniques it employs. The prover consists of ca. 124,000 lines of JAVA code. The standard rule base consists of 1,725 rules that are written in about 15,000 lines of KeY’s “taclet” rule description language. About 1,300 of these formalize the semantics of the JAVA programming language. The system has been created by 14 implementors since 1999, who spent a total of about 30 person years. Recently, version 1.0 of the KeY system has been released in connection with the KeY book [2]. The KeY tool is available under GPL and can be downloaded from www.key-project.org. The KeY Program Verification System. The architecture of the KeY system is shown in Fig. 1. Optional plugins to the popular Eclipse IDE and to the Borland Together CASE tool suite are intended to lower initial adoption cost for users with no or little training in formal methods. KeY supports several languages for specifying properties of object-oriented models. Many people 1 Not counting comments. These numbers are based on our estimates and the results of the SLOCCount tool (www.dwheeler.com/sloccount). Lightweight Usage of Formal Methods FM expert Logic xpgWizard g English OCL/UML gJML g Logic gTaclets g Borland Together CC Eclipse IDE OCL/NL Tool JML Browser KeY Plugin KeY Plugin OCL/FOL Translation JML/FOL Translation Synthesis of Proof Obligations KeY Prover Rule Base
منابع مشابه
A Heterogeneous Parallel Deduction System
This paper describes the architecture, implementation and performance, of a heterogeneous parallel deduction system (HPDS). The HPDS uses multiple deduction components, each of which attempts to find a refutation of the same input set, but using different deduction formats. The components cooperate by distributing clauses they generate to other components. The HPDS has been implemented in Prolo...
متن کاملMUltlog 1.0: Towards an Expert System for Many-Valued Logics
MUltlog is a system which takes as input the specification of a finitely-valued first-order logic and produces a sequent calculus, a natural deduction system, and a calculus for transforming a many-valued formula to clauses suitable for many-valued resolution. All generated rules are optimized regarding their branching degree. The output is in the form of a scientific paper, written in LTEX.
متن کاملA short introduction to two approaches in formal verification of security protocols: model checking and theorem proving
In this paper, we shortly review two formal approaches in verification of security protocols; model checking and theorem proving. Model checking is based on studying the behavior of protocols via generating all different behaviors of a protocol and checking whether the desired goals are satisfied in all instances or not. We investigate Scyther operational semantics as n example of this...
متن کاملDeduction in the Verification Support Environment (VSE)
The reliability of complex software systems is becoming increasingly important for the technical systems they are embedded in. In order to assure the highest levels of trustworthiness of software formal methods for the development of software are required. The VSE-tool was developed by a consortium of German universities and industry to make a tool available which supports this formal developme...
متن کاملThreshold F-policy and N-policy for multi-component machining system with warm standbys
The integration of marketing and demand with logistics and inventories (supply side of companies) may cause multiple improvements; it can revolutionize the management of the revenue of rental companies, hotels, and airlines. In this paper, we develop a multi-objective pricing-inventory model for a retailer. Maximizing the retailer's profit and the service level are the objectives, and shorta...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007